package com.cy.pj.common.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class SysTimeAspect {
	
//	@Pointcut("bean(sysUserServiceImpl)")
//	public void doTime() {}
//	
//	@Before("doTime()")
//	public void doBefore() {
//		System.out.println("@Before");
//	}
//	@After("doTime()")
//	public void doAfter() {
//		System.out.println("@After");
//	}
//	@AfterReturning("doTime()")
//	public void doAfterReturning() {
//		System.out.println("@AfterReturning");
//	}
//	@AfterThrowing("doTime()")
//	public void AfterThrowing() {
//		System.out.println("@AfterThrowing");
//	}
//	/*
//	 * 	@Around.before
//		@Before
//		...执行方法..
//		@Around.after/@Around.throwing
//		@After
//		@AfterReturning/@AfterThrowing
//	 */
//	@Around("doTime()")
//	public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
//		try {
//			System.out.println("@Around.before");
//			Object proceed = pjp.proceed();
//			System.out.println("@Around.after");
//			return proceed;
//		}catch (Throwable e) {
//			System.out.println("@Around.throwing");
//			throw e;
//		}
//	}
}
